home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / util / glutskel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-12-15  |  1.6 KB  |  101 lines

  1. /* glutskel.c */
  2.  
  3. /*
  4.  * A skeleton/template GLUT program
  5.  *
  6.  * Written by Brian Paul and in the public domain.
  7.  */
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <math.h>
  12. #include <GL/glut.h>
  13.  
  14.  
  15.  
  16. static void Idle( void )
  17. {
  18.    /* update animation vars */
  19.    glutPostRedisplay();
  20. }
  21.  
  22.  
  23. static void Display( void )
  24. {
  25.    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
  26.  
  27.    glPushMatrix();
  28.    /* draw stuff here */
  29.  
  30.    glPopMatrix();
  31.  
  32.    glutSwapBuffers();
  33. }
  34.  
  35.  
  36. static void Reshape( int width, int height )
  37. {
  38.    glViewport( 0, 0, width, height );
  39.    glMatrixMode( GL_PROJECTION );
  40.    glLoadIdentity();
  41.    glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 25.0 );
  42.    glMatrixMode( GL_MODELVIEW );
  43.    glLoadIdentity();
  44.    glTranslatef( 0.0, 0.0, -15.0 );
  45. }
  46.  
  47.  
  48. static void Key( unsigned char key, int x, int y )
  49. {
  50.    switch (key) {
  51.       case 27:
  52.          exit(0);
  53.          break;
  54.    }
  55.    glutPostRedisplay();
  56. }
  57.  
  58.  
  59. static void SpecialKey( int key, int x, int y )
  60. {
  61.    switch (key) {
  62.       case GLUT_KEY_UP:
  63.          break;
  64.       case GLUT_KEY_DOWN:
  65.          break;
  66.       case GLUT_KEY_LEFT:
  67.          break;
  68.       case GLUT_KEY_RIGHT:
  69.          break;
  70.    }
  71.    glutPostRedisplay();
  72. }
  73.  
  74.  
  75. static void Init( void )
  76. {
  77.    /* setup lighting, etc */
  78. }
  79.  
  80.  
  81. int main( int argc, char *argv[] )
  82. {
  83.    glutInit( &argc, argv );
  84.    glutInitWindowSize( 400, 400 );
  85.  
  86.    glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
  87.  
  88.    glutCreateWindow(argv[0]);
  89.  
  90.    Init();
  91.  
  92.    glutReshapeFunc( Reshape );
  93.    glutKeyboardFunc( Key );
  94.    glutSpecialFunc( SpecialKey );
  95.    glutDisplayFunc( Display );
  96.    glutIdleFunc( Idle );
  97.  
  98.    glutMainLoop();
  99.    return 0;
  100. }
  101.